const mysql = require('mysql');
const config = require('./config')
// 创建连接池
const pool = mysql.createPool(Object.assign({
  connectionLimit: 10,
  connectTimeout: 6000,
  multipleStatements: true,
  charset:'utf8mb4',
  supportBigNumbers:true,
  bigNumberStrings:true
},config.mysql || {}))
 
// 当不再需要连接池时，可以关闭连接池
// pool.end();

module.exports = {
  query(sql){
    return new Promise(next =>{
      // 从连接池获取连接
      pool.getConnection((err, connection) => {
        if (err) throw err; // 如果有错误，抛出错误
      
        // 使用连接执行查询
        connection.query(sql, (error, results, fields) => {
          if(error) console.log(error)
          // 处理查询结果
          next(error ? { errorMsg : error.message } : results)
      
          // 释放连接
          connection.release()
      
          // 如果需要关闭连接池，可以调用pool.end()
        })
      })
    })
  }
}